//
//  VSBaseDaoRemote.h
//  Vstore
//
//  Created by Eric Scott on 10/31/14.
//  Copyright (c) 2014 LITB. All rights reserved.
//

#import <Foundation/Foundation.h>


@class RACSignal;

@protocol VSHttpNetworkingDelegate <NSObject>

@optional

- (void)willSendRequest:(NSString *)URLString;

- (void)didReceiveResponse;

@end


@interface VSHttpNetworking : NSObject

MACRO_SHARED_INSTANCE_INTERFACE;

@property (nonatomic, weak) id<VSHttpNetworkingDelegate> delegate;

- (RACSignal *)rac_signalForHttpGET:(NSString *)URLString
                         parameters:(NSDictionary *)parameters;

- (RACSignal *)rac_signalForHttpPOST:(NSString *)URLString
                          parameters:(NSDictionary *)parameters;

- (RACSignal *)rac_signalForHttpPOSTWithoutJson:(NSString *)URLString
                                     parameters:(NSDictionary *)parameters;

- (RACSignal *)rac_signalForHttpDELETE:(NSString *)URLString
                            parameters:(NSDictionary *)parameters;

- (RACSignal *)rac_signalForHttpPOST:(NSString *)URLString
                          parameters:(NSDictionary *)parameters
                            filePath:(NSURL *)filePath
                                name:(NSString *)name
                            fileName:(NSString *)fileName
                            mimeType:(NSString *)mimeType;

- (RACSignal *)rac_signalForHttpPOST:(NSString *)URLString
                          parameters:(NSDictionary *)parameters
                            fileData:(NSData *)fileData
                                name:(NSString *)name
                            fileName:(NSString *)fileName
                            mimeType:(NSString *)mimeType;

@end
